/*
 * PrincipalPresenter
 * 
 * Versão 1.0
 * 
 * Data de criação: 05/06/2013
 * 
 * Copyright (c)
 * Autor: Odair José Tanes
 * Matrícula: 2009209186
 * Disciplina: Projeto de Sistemas de Software
 * 
 * Protótipo criado para exercício da disciplina
 * 
 * 
 */
package edu.ufes.pss.exercicioSwingBanco.presenter;

import edu.ufes.pss.exercicioSwingBanco.view.PrincipalView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 *
 * @author OdairJT
 */
public class PrincipalPresenter {

    private PrincipalView view;

    public PrincipalPresenter() {

        this.view = new PrincipalView();

        addListenerMnuNovoAgencia();
        addListenerMnuNovoDiretor();
        addListenerMnuNovoGerente();
        addListenerMnuNovoClientePessoaFisica();
        addListenerMnuNovoClientePessoaJuridica();
        addListenerMnuSair();       
        
        addListenerMnuListarAgencias();
        addListenerMnuListarDiretores();
        addListenerMnuListarGerentes();
        addListenerMnuListarClientesPessoaFisica();
        addListenerMnuListarClientesPessoaJuridica();

        this.view.setLocationRelativeTo(null);
        this.view.setVisible(true);
    }
    
    private void addListenerMnuNovoAgencia() {
        this.view.getMnuNovoAgencia().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuNovoAgencia();
            }
        });
    }

    private void actionPerformedMnuNovoAgencia() {
        CrudAgenciaPresenter crudAgenciaPresenter = new CrudAgenciaPresenter();
    }
    
    private void addListenerMnuNovoDiretor() {
        this.view.getMnuNovoDiretor().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuNovoDiretor();
            }
        });
    }

    private void actionPerformedMnuNovoDiretor() {
        CrudDiretorPresenter crudDiretorPresenter = new CrudDiretorPresenter();
    }
    
    private void addListenerMnuNovoGerente() {
        this.view.getMnuNovoGerente().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuNovoGerente();
            }
        });
    }

    private void actionPerformedMnuNovoGerente() {
        CrudGerentePresenter crudGerentePresenter = new CrudGerentePresenter();
    }
    
    private void addListenerMnuNovoClientePessoaFisica() {
        this.view.getMnuNovoClientePessoaFisica().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuNovoClientePessoaFisica();
            }
        });
    }

    private void actionPerformedMnuNovoClientePessoaFisica() {
        CrudClientePessoaFisicaPresenter crudClientePessoaFisicaPresenter = new CrudClientePessoaFisicaPresenter();
    }
    
    private void addListenerMnuNovoClientePessoaJuridica() {
        this.view.getMnuNovoClientePessoaJuridica().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuNovoClientePessoaJuridica();
            }
        });
    }

    private void actionPerformedMnuNovoClientePessoaJuridica() {
        CrudClientePessoaJuridicaPresenter crudClientePessoaJuridicaPresenter = new CrudClientePessoaJuridicaPresenter();
    }

    private void addListenerMnuSair() {
        this.view.getMnuSair().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuSair();
            }
        });
    }

    private void actionPerformedMnuSair() {
        int retorno = this.view.showConfirmMessage("Verificação de ação", "Deseja realmente sair?");

        if (retorno == 0) {
            SecaoUsuarioPresenter loginUsuarioPresenter = new SecaoUsuarioPresenter();
            this.view.dispose();
        }
    }

    private void addListenerMnuListarAgencias() {
        this.view.getMnuListarAgencias().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuListarAgencias();
            }
        });
    }

    private void actionPerformedMnuListarAgencias() {
        ListaAgenciaPresenter listaAgenciaPresenter = new ListaAgenciaPresenter();
    }
    
    private void addListenerMnuListarDiretores() {
        this.view.getMnuListarDiretor().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuListarDiretores();
            }
        });
    }

    private void actionPerformedMnuListarDiretores() {
        ListaDiretorPresenter listaDiretorPresenter = new ListaDiretorPresenter();
    }
    
    private void addListenerMnuListarGerentes() {
        this.view.getMnuListarGerente().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuListarGerentes();
            }
        });
    }

    private void actionPerformedMnuListarGerentes() {
        ListaGerentePresenter listaGerentePresenter = new ListaGerentePresenter();
    }
    
    private void addListenerMnuListarClientesPessoaFisica() {
        this.view.getMnuListarClientePessoaFisica().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuListarClientesPessoaFisica();
            }
        });
    }

    private void actionPerformedMnuListarClientesPessoaFisica() {
        ListaClientePessoaFisicaPresenter listaClientePessoaFisicaPresenter = new ListaClientePessoaFisicaPresenter();
    }
    
    private void addListenerMnuListarClientesPessoaJuridica() {
        this.view.getMnuListarClientePessoaJuridica().addActionListener(
                new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformedMnuListarClientesPessoaJuridica();
            }
        });
    }

    private void actionPerformedMnuListarClientesPessoaJuridica() {
        ListaClientePessoaJuridicaPresenter listaClientePessoaJuridicaPresenter = new ListaClientePessoaJuridicaPresenter();
    }
}
